<?php
/**
 * TwentyTen functions and definitions
 *
 * Sets up the theme and provides some helper functions. Some helper functions
 * are used in the theme as custom template tags. Others are attached to action and
 * filter hooks in WordPress to change core functionality.
 *
 * The first function, manhthai_setup(), sets up the theme by registering support
 * for various features in WordPress, such as post thumbnails, navigation menus, and the like.
 *
 * When using a child theme (see http://codex.wordpress.org/Theme_Development and
 * http://codex.wordpress.org/Child_Themes), you can override certain functions
 * (those wrapped in a function_exists() call) by defining them first in your child theme's
 * functions.php file. The child theme's functions.php file is included before the parent
 * theme's file, so the child theme functions would be used.
 *
 * Functions that are not pluggable (not wrapped in function_exists()) are instead attached
 * to a filter or action hook. The hook can be removed by using remove_action() or
 * remove_filter() and you can attach your own function to the hook.
 *
 * We can remove the parent theme's hook only after it is attached, which means we need to
 * wait until setting up the child theme:
 *
 * <code>
 * add_action( 'after_setup_theme', 'my_child_theme_setup' );
 * function my_child_theme_setup() {
 *     // We are providing our own filter for excerpt_length (or using the unfiltered value)
 *     remove_filter( 'excerpt_length', 'manhthai_excerpt_length' );
 *     ...
 * }
 * </code>
 *
 * For more information on hooks, actions, and filters, see http://codex.wordpress.org/Plugin_API.
 *
 * @package WordPress
 * @subpackage Twenty_Ten
 * @since Twenty Ten 1.0
 */
/**
 * Set the content width based on the theme's design and stylesheet.
 *
 * Used to set the width of images and content. Should be equal to the width the theme
 * is designed for, generally via the style.css stylesheet.
 */
if (!isset($content_width))
    $content_width = 640;

/** Tell WordPress to run manhthai_setup() when the 'after_setup_theme' hook is run. */
add_action('after_setup_theme', 'manhthai_setup');

if (!function_exists('manhthai_setup')):

    /**
     * Sets up theme defaults and registers support for various WordPress features.
     *
     * Note that this function is hooked into the after_setup_theme hook, which runs
     * before the init hook. The init hook is too late for some features, such as indicating
     * support post thumbnails.
     *
     * To override manhthai_setup() in a child theme, add your own manhthai_setup to your child theme's
     * functions.php file.
     *
     * @uses add_theme_support() To add support for post thumbnails and automatic feed links.
     * @uses register_nav_menus() To add support for navigation menus.
     * @uses add_custom_background() To add support for a custom background.
     * @uses add_editor_style() To style the visual editor.
     * @uses load_theme_textdomain() For translation/localization support.
     * @uses add_custom_image_header() To add support for a custom header.
     * @uses register_default_headers() To register the default custom header images provided with the theme.
     * @uses set_post_thumbnail_size() To set a custom post thumbnail size.
     *
     * @since Twenty Ten 1.0
     */
    function manhthai_setup() {

        // This theme styles the visual editor with editor-style.css to match the theme style.
        add_editor_style();

        // Post Format support. You can also use the legacy "gallery" or "asides" (note the plural) categories.
        add_theme_support('post-formats', array('aside', 'gallery'));

        // This theme uses post thumbnails
        add_theme_support('post-thumbnails');

        // Add default posts and comments RSS feed links to head
        add_theme_support('automatic-feed-links');

        // Make theme available for translation
        // Translations can be filed in the /languages/ directory
        load_theme_textdomain('manhthai', TEMPLATEPATH . '/languages');

        $locale = get_locale();
        $locale_file = TEMPLATEPATH . "/languages/$locale.php";
        if (is_readable($locale_file))
            require_once( $locale_file );

        // This theme uses wp_nav_menu() in one location.
        register_nav_menus(array(
            'primary' => __('Primary Navigation', 'manhthai'),
        ));

        // This theme allows users to set a custom background
        add_custom_background();

        // Your changeable header business starts here
        if (!defined('HEADER_TEXTCOLOR'))
            define('HEADER_TEXTCOLOR', '');

        // No CSS, just IMG call. The %s is a placeholder for the theme template directory URI.
        if (!defined('HEADER_IMAGE'))
            define('HEADER_IMAGE', '%s/images/headers/path.jpg');

        // The height and width of your custom header. You can hook into the theme's own filters to change these values.
        // Add a filter to manhthai_header_image_width and manhthai_header_image_height to change these values.
        define('HEADER_IMAGE_WIDTH', apply_filters('manhthai_header_image_width', 940));
        define('HEADER_IMAGE_HEIGHT', apply_filters('manhthai_header_image_height', 198));

        // We'll be using post thumbnails for custom header images on posts and pages.
        // We want them to be 940 pixels wide by 198 pixels tall.
        // Larger images will be auto-cropped to fit, smaller ones will be ignored. See header.php.
        set_post_thumbnail_size(HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true);

        // Don't support text inside the header image.
        if (!defined('NO_HEADER_TEXT'))
            define('NO_HEADER_TEXT', true);

        // Add a way for the custom header to be styled in the admin panel that controls
        // custom headers. See manhthai_admin_header_style(), below.
        add_custom_image_header('', 'manhthai_admin_header_style');

        // ... and thus ends the changeable header business.
        // Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI.
        register_default_headers(array(
            'berries' => array(
                'url' => '%s/images/headers/berries.jpg',
                'thumbnail_url' => '%s/images/headers/berries-thumbnail.jpg',
                /* translators: header image description */
                'description' => __('Berries', 'manhthai')
            ),
            'cherryblossom' => array(
                'url' => '%s/images/headers/cherryblossoms.jpg',
                'thumbnail_url' => '%s/images/headers/cherryblossoms-thumbnail.jpg',
                /* translators: header image description */
                'description' => __('Cherry Blossoms', 'manhthai')
            ),
            'concave' => array(
                'url' => '%s/images/headers/concave.jpg',
                'thumbnail_url' => '%s/images/headers/concave-thumbnail.jpg',
                /* translators: header image description */
                'description' => __('Concave', 'manhthai')
            ),
            'fern' => array(
                'url' => '%s/images/headers/fern.jpg',
                'thumbnail_url' => '%s/images/headers/fern-thumbnail.jpg',
                /* translators: header image description */
                'description' => __('Fern', 'manhthai')
            ),
            'forestfloor' => array(
                'url' => '%s/images/headers/forestfloor.jpg',
                'thumbnail_url' => '%s/images/headers/forestfloor-thumbnail.jpg',
                /* translators: header image description */
                'description' => __('Forest Floor', 'manhthai')
            ),
            'inkwell' => array(
                'url' => '%s/images/headers/inkwell.jpg',
                'thumbnail_url' => '%s/images/headers/inkwell-thumbnail.jpg',
                /* translators: header image description */
                'description' => __('Inkwell', 'manhthai')
            ),
            'path' => array(
                'url' => '%s/images/headers/path.jpg',
                'thumbnail_url' => '%s/images/headers/path-thumbnail.jpg',
                /* translators: header image description */
                'description' => __('Path', 'manhthai')
            ),
            'sunset' => array(
                'url' => '%s/images/headers/sunset.jpg',
                'thumbnail_url' => '%s/images/headers/sunset-thumbnail.jpg',
                /* translators: header image description */
                'description' => __('Sunset', 'manhthai')
            )
        ));
    }

endif;

if (!function_exists('manhthai_admin_header_style')) :

    /**
     * Styles the header image displayed on the Appearance > Header admin panel.
     *
     * Referenced via add_custom_image_header() in manhthai_setup().
     *
     * @since Twenty Ten 1.0
     */
    function manhthai_admin_header_style() {
        ?>
        <style type="text/css">
            /* Shows the same border as on front end */
            #headimg {
                border-bottom: 1px solid #000;
                border-top: 4px solid #000;
            }
            /* If NO_HEADER_TEXT is false, you would style the text with these selectors:
                    #headimg #name { }
                    #headimg #desc { }
            */
        </style>
        <?php
    }

endif;

/**
 * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link.
 *
 * To override this in a child theme, remove the filter and optionally add
 * your own function tied to the wp_page_menu_args filter hook.
 *
 * @since Twenty Ten 1.0
 */
function manhthai_page_menu_args($args) {
    $args['show_home'] = true;
    return $args;
}

add_filter('wp_page_menu_args', 'manhthai_page_menu_args');

/**
 * Sets the post excerpt length to 40 characters.
 *
 * To override this length in a child theme, remove the filter and add your own
 * function tied to the excerpt_length filter hook.
 *
 * @since Twenty Ten 1.0
 * @return int
 */
function manhthai_excerpt_length($length) {
    return 40;
}

add_filter('excerpt_length', 'manhthai_excerpt_length');

/**
 * Returns a "Continue Reading" link for excerpts
 *
 * @since Twenty Ten 1.0
 * @return string "Continue Reading" link
 */
function manhthai_continue_reading_link() {
    return ' <a href="' . get_permalink() . '">' . __('Continue reading <span class="meta-nav">&rarr;</span>', 'manhthai') . '</a>';
}

/**
 * Replaces "[...]" (appended to automatically generated excerpts) with an ellipsis and manhthai_continue_reading_link().
 *
 * To override this in a child theme, remove the filter and add your own
 * function tied to the excerpt_more filter hook.
 *
 * @since Twenty Ten 1.0
 * @return string An ellipsis
 */
function manhthai_auto_excerpt_more($more) {
    return ' &hellip;' . manhthai_continue_reading_link();
}

add_filter('excerpt_more', 'manhthai_auto_excerpt_more');

/**
 * Adds a pretty "Continue Reading" link to custom post excerpts.
 *
 * To override this link in a child theme, remove the filter and add your own
 * function tied to the get_the_excerpt filter hook.
 *
 * @since Twenty Ten 1.0
 * @return string Excerpt with a pretty "Continue Reading" link
 */
function manhthai_custom_excerpt_more($output) {
    if (has_excerpt() && !is_attachment()) {
        //$output .= manhthai_continue_reading_link();
    }
    return $output;
}

add_filter('get_the_excerpt', 'manhthai_custom_excerpt_more');

/**
 * Remove inline styles printed when the gallery shortcode is used.
 *
 * Galleries are styled by the theme in Twenty Ten's style.css. This is just
 * a simple filter call that tells WordPress to not use the default styles.
 *
 * @since Twenty Ten 1.2
 */
add_filter('use_default_gallery_style', '__return_false');

/**
 * Deprecated way to remove inline styles printed when the gallery shortcode is used.
 *
 * This function is no longer needed or used. Use the use_default_gallery_style
 * filter instead, as seen above.
 *
 * @since Twenty Ten 1.0
 * @deprecated Deprecated in Twenty Ten 1.2 for WordPress 3.1
 *
 * @return string The gallery style filter, with the styles themselves removed.
 */
function manhthai_remove_gallery_css($css) {
    return preg_replace("#<style type='text/css'>(.*?)</style>#s", '', $css);
}

// Backwards compatibility with WordPress 3.0.
if (version_compare($GLOBALS['wp_version'], '3.1', '<'))
    add_filter('gallery_style', 'manhthai_remove_gallery_css');

if (!function_exists('manhthai_comment')) :

    /**
     * Template for comments and pingbacks.
     *
     * To override this walker in a child theme without modifying the comments template
     * simply create your own manhthai_comment(), and that function will be used instead.
     *
     * Used as a callback by wp_list_comments() for displaying the comments.
     *
     * @since Twenty Ten 1.0
     */
    function manhthai_comment($comment, $args, $depth) {
        $GLOBALS['comment'] = $comment;
        switch ($comment->comment_type) :
            case '' :
                ?>
                <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
                    <div id="comment-<?php comment_ID(); ?>">
                        <div class="comment-author vcard">
                            <?php echo get_avatar($comment, 40); ?>
                            <?php printf(__('%s <span class="says">says:</span>', 'manhthai'), sprintf('<cite class="fn">%s</cite>', get_comment_author_link())); ?>
                        </div><!-- .comment-author .vcard -->
                        <?php if ($comment->comment_approved == '0') : ?>
                            <em class="comment-awaiting-moderation"><?php _e('Your comment is awaiting moderation.', 'manhthai'); ?></em>
                            <br />
                        <?php endif; ?>

                        <div class="comment-meta commentmetadata"><a href="<?php echo esc_url(get_comment_link($comment->comment_ID)); ?>">
                                <?php
                                /* translators: 1: date, 2: time */
                                printf(__('%1$s at %2$s', 'manhthai'), get_comment_date(), get_comment_time());
                                ?></a><?php edit_comment_link(__('(Edit)', 'manhthai'), ' ');
                                ?>
                        </div><!-- .comment-meta .commentmetadata -->

                        <div class="comment-body"><?php comment_text(); ?></div>

                        <div class="reply">
                            <?php comment_reply_link(array_merge($args, array('depth' => $depth, 'max_depth' => $args['max_depth']))); ?>
                        </div><!-- .reply -->
                    </div><!-- #comment-##  -->

                    <?php
                    break;
                case 'pingback' :
                case 'trackback' :
                    ?>
                <li class="post pingback">
                    <p><?php _e('Pingback:', 'manhthai'); ?> <?php comment_author_link(); ?><?php edit_comment_link(__('(Edit)', 'manhthai'), ' '); ?></p>
                    <?php
                    break;
            endswitch;
        }

    endif;

    /**
     * Register widgetized areas, including two sidebars and four widget-ready columns in the footer.
     *
     * To override manhthai_widgets_init() in a child theme, remove the action hook and add your own
     * function tied to the init hook.
     *
     * @since Twenty Ten 1.0
     * @uses register_sidebar
     */
    function manhthai_widgets_init() {

        register_sidebar(array(
            'name' => __('Sidebar Header Top', 'manhthai'),
            'id' => 'sidebar_head_top',
            'before_widget' => '',
            'after_widget' => '',
            'before_title' => '',
            'after_title' => '',
        ));
        register_sidebar(array(
            'name' => __('Sidebar Left', 'manhthai'),
            'id' => 'sidebar_left',
            'before_widget' => '<div class="custom-wg">',
            'after_widget' => '</div>',
            'before_title' => '<h3 class="title-wg">',
            'after_title' => '</h3>',
        ));
        register_sidebar(array(
            'name' => __('Sidebar Right', 'manhthai'),
            'id' => 'sidebar_right',
            'before_widget' => '<div class="custom-wg">',
            'after_widget' => '</div>',
            'before_title' => '<h3 class="title-wg">',
            'after_title' => '</h3>',
        ));
        register_sidebar(array(
            'name' => __('Sidebar Footer', 'manhthai'),
            'id' => 'sidebar_footer',
            'before_widget' => '<div class="menu-bottom">',
            'after_widget' => '</div>',
            'before_title' => '<h2 class="footer-title-wg">',
            'after_title' => '</h2>',
        ));
    }

    /* cut string */

    function substr_custom($string, $count) {
        $string = substr($string, 0, $count);
        $string = substr($string, 0, strripos($string, '.'));
        $string = $string . ' ...';
        return $string;
    }

    /** Register sidebars by running manhthai_widgets_init() on the widgets_init hook. */
    add_action('widgets_init', 'manhthai_widgets_init');

    /**
     * Removes the default styles that are packaged with the Recent Comments widget.
     *
     * To override this in a child theme, remove the filter and optionally add your own
     * function tied to the widgets_init action hook.
     *
     * This function uses a filter (show_recent_comments_widget_style) new in WordPress 3.1
     * to remove the default style. Using Twenty Ten 1.2 in WordPress 3.0 will show the styles,
     * but they won't have any effect on the widget in default Twenty Ten styling.
     *
     * @since Twenty Ten 1.0
     */
    function manhthai_remove_recent_comments_style() {
        add_filter('show_recent_comments_widget_style', '__return_false');
    }

    add_action('widgets_init', 'manhthai_remove_recent_comments_style');

    if (!function_exists('manhthai_posted_on')) :

        /**
         * Prints HTML with meta information for the current post-date/time and author.
         *
         * @since Twenty Ten 1.0
         */
        function manhthai_posted_on() {
            printf(__('<span class="%1$s">Posted on</span> %2$s <span class="meta-sep">by</span> %3$s', 'manhthai'), 'meta-prep meta-prep-author', sprintf('<a href="%1$s" title="%2$s" rel="bookmark"><span class="entry-date">%3$s</span></a>', get_permalink(), esc_attr(get_the_time()), get_the_date()
                    ), sprintf('<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>', get_author_posts_url(get_the_author_meta('ID')), sprintf(esc_attr__('View all posts by %s', 'manhthai'), get_the_author()), get_the_author()
                    )
            );
        }

    endif;

    if (!function_exists('manhthai_posted_in')) :

        /**
         * Prints HTML with meta information for the current post (category, tags and permalink).
         *
         * @since Twenty Ten 1.0
         */
        function manhthai_posted_in() {
            // Retrieves tag list of current post, separated by commas.
            $tag_list = get_the_tag_list('', ', ');
            if ($tag_list) {
                $posted_in = __('This entry was posted in %1$s and tagged %2$s. Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'manhthai');
            } elseif (is_object_in_taxonomy(get_post_type(), 'category')) {
                $posted_in = __('This entry was posted in %1$s. Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'manhthai');
            } else {
                $posted_in = __('Bookmark the <a href="%3$s" title="Permalink to %4$s" rel="bookmark">permalink</a>.', 'manhthai');
            }
            // Prints the string, replacing the placeholders.
            printf(
                    $posted_in, get_the_category_list(', '), $tag_list, get_permalink(), the_title_attribute('echo=0')
            );
        }

    endif;

//Widgets
    add_filter('woocommerce_currencies', 'add_my_currency');

    function add_my_currency($currencies) {
        $currencies['Đồng'] = __('Viet Nam Dong', 'woocommerce');
        return $currencies;
    }

    add_filter('woocommerce_currency_symbol', 'add_my_currency_symbol', 10, 2);

    function add_my_currency_symbol($currency_symbol, $currency) {
        switch ($currency) {
            case 'Đồng': $currency_symbol = ' VNĐ';
                break;
        }
        return $currency_symbol;
    }